import 'package:enterprise_v6_app/app/data/entities/application/execute_entity.dart';

/// 作业人类型工具类
class PersonnelType {
  /// 根据人员名称字符串,获取作业类型
  ///0：操作人 1：作业负责人 2：监护人 3:编制人 4：司索人 5:指挥人 6：用电人 7：安全交底人 8：接受交底人 9：验收人
  static int getOperatorType({required String name}) {
    switch (name) {
      case '作业实施人':
      case '动火人':
      case '作业人':
      case '操作人':
      case '吊装作业人':
        return 0;
      case '作业负责人':
        return 1;
      case '监护人':
        return 2;
      case '编制人':
        return 3;
      case '司索人':
        return 4;
      case '指挥人':
        return 5;
      case '用电人':
        return 6;
      case '安全交底人':
        return 7;
      case '接受交底人':
        return 8;
      case '验收人':
        return 9;
      default:
        return 0;
    }
  }

  /// 根据作业类型,获取人员名称字符串
  /// [operatorType]  人员类型
  /// [businessType]  作业类型
  /// [ticketBigTypeName] 作业类型中文
  static String getTypeName({required int operatorType, String? businessType, String? ticketBigTypeName}) {
    switch (operatorType) {
      case 0:
        if (businessType != null) {
          switch (businessType) {
            //动火作业
            case '1':
              return '动火人';
            //受限空间
            case '2':
            //盲板抽堵
            case '3':
            //高处作业
            case '4':
            //临时用电
            case '6':
              return '作业人';
            //吊装作业
            case '5':
              return '吊装作业人';
            default:
              return '';
          }
        } else if (ticketBigTypeName != null) {
          switch (ticketBigTypeName) {
            case '动火作业':
              return '动火人';
            case '受限空间':
            case '盲板抽堵':
            case '高处作业':
            case '临时用电':
              return '作业人';
            case '吊装作业':
              return '吊装作业人';
            default:
              return '';
          }
        } else {
          return '操作人';
        }
      case 1:
        return '作业负责人';
      case 2:
        return '监护人';
      case 3:
        return '编制人';
      case 4:
        return '司索人';
      case 5:
        return '指挥人';
      case 6:
        return '用电人';
      case 7:
        return '安全交底人';
      case 8:
        return '接受交底人';
      case 9:
        return '验收人';
      default:
        return '';
    }
  }

  /// 操作人显示判断
  static String getOperatorDisplay(String operatorName) {
    // 以下下类型都为操作人
    switch (operatorName) {
      case '作业实施人':
      case '动火人':
      case '作业人':
      case '吊装作业人':
        return '操作人';
      default:
        return operatorName;
    }
  }


  ///获取对应类型人员名称
  static String getNameByType(List<ExecuteTicketReceiptListOperatorLists> list, {int type = 0}) {
    return list.where((element) => element.operatorType == type).map((item) {
      return '${item.operatorUserName}';
    }).join(',');
  }
}
